1156515 Logo RH RGB Reverse

Continuous Delivery with JBoss Fuse & Openshift

Charles Moulliard
EMEA Partners - 5 to 7 Oct 2015

Who

cmoulliard

Pr. Solution Architect, Fuse Expert, Apache Committer

Blog: http://cmoulliard.github.io

Twitter: @cmoulliard

Email: cmoulliard@redhat.com

  • Committer on Apache Camel, Karaf, Fabric8, Hawtio … & PMC

  • Technology evangelist

  • Mountain Biker, Belgian Beer Fan, Blogger

Agenda

  • The cost of change

  • CD/CI

  • Technology

  • OpenShift

  • Fabric8

  • Demo

 

1156515 Logo RH RGB Reverse

Cost of change

Cost of change change

Business requirements

2x

Development

3x

Operations

4x

Infrastructure

Integration costs

  • Integration is Hard!

  • Different system vintages

  • Mainframe, EAI Hub, MOM, EJB, Web Services

  • Systems must collaborate

esb

Integration costs

  • Platforms, Protocols

  • Data Formats

  • Data Mapping

  • Schemas, XSD, JSon

integration-2

Integration costs

  • Services governance

  • Security

  • Procedures

  • Volumetry

  • Timing, Communication

integration-1

 

1156515 Logo RH RGB Reverse

Continuous Delivery Strategy !

 

worked-fine-in-dev

“WTF is DevOps?”

  • IT is a core competency

  • Set of principles

  • There’s more to applications than coding!

  • Feedback, Repetition

  • Communication

  • People!

wtf-dev-ops

“Coder, programmer”

developer

“Interest”

languages

java, web2, html, js, unit test, …

“Operation guy”

opts it

log, procedure, cpu, thread blocked, report, deployment procedure, alert, monitor, …

Strategy

  • Objective Continuous Integration strategy

  • Establish a concrete pipeline to production

  • Build/Test/Release more often!

idea

Impact

  • Bottlenecks ?

  • Involves Dev & Ops to be successful

  • Every build is a “release candidate”

collaborate

Automate Pipeline !

  • Developer

    • Unit test

    • Integration test

    • Build

    • Deployment

    • Doc / Release

devops2

Automate Pipeline - con’t

  • Operations

    • Setup VMachine

    • Provisioning software

    • Deployment in QA/UAT/PROD

devops1

 

1156515 Logo RH RGB Reverse

Requirements to support CD

Dev Tools

  • Git for SCM

  • Gerrit for code review

  • Gitlab/Gogs for git projects mngt

  • Apache Maven - build

  • Jenkins + plugins - automate

fabric8-cd-tools

Platform

  • Machine → VM → Linux Container

  • Red Hat Atomic Enterprise Platform

rhel-atomic

 

1156515 Logo RH RGB Reverse

Linux container

Process

docker-animated-1

Docker

  • Container runtime, image distribution, Process launcher

docker-animated-2

docker-logo

Docker

docker filesystems multilayer
  • Top of a Union FS mounted with immutable images

  • Benefits: portability, reusability, versioning, application-centric

dockerfile

 

1156515 Logo RH RGB Reverse

Management platform

Kubernetes

  • Runtime & Operational management of containers

  • ApiServer (event, status), Scheduler, Controller & State Storage

  • Agent - Kubelet - manage containers on host

  • Containers pods (= shared docker containers)

kubernetes logo

Kubernetes

kubernetes-platform

Pod & docker

fabric8 pod
  • Communicate to each other using skyDNS to resolve hostname

Pod & port

fabric8 pod port
  • Ports can be exposed

Pod & volume

fabric8 pod volume
  • Share data using mounted volume between host & container

Kubernetes Service

fabric8 service pod
  • Kube Service loadbalanced through the pods using HA-Proxy & Routes

Kube Application JSon

kubernetes-json-1

kubernetes-json-2

 

1156515 Logo RH RGB Reverse

Platform as Service

OpenShift v3

  • Designed around Kubernetes, Docker, Fabric8

  • Provide new features

    • Docker Images Registry & Certification

    • SSO - Authentication Server

    • Api for Management, Client Command Line

rht-atomic-enterprise-openshift

OS3 Architecture

ose-v3

CDelivery Technology

  • Manage setup/build/deploy images

  • Tool to design Kubernetes Applications

  • Stage environments

  • Provision Worflow Pipeline

fabric8-logo

Fabric8 Maven Plugin

  • docker:build Build image of app

  • docker:push Push image

  • fabric8:json generates Kube MetaData App

  • fabric8:apply/recreate deploy/redeploy on Openshift

  • fabric8:apply/recreate deploy/redeploy on Openshift

  • and more to create env, delete pods, create routes

 

fabric8-diagram1

 

fabric8-cdci

 

1156515 Logo RH RGB Reverse

Demo

jenkins pipeline

Questions

questions